The present invention relates in general to the field of video decoding devices, and more particularly, to a system, method and apparatus for a variable output video decoder.
The storage and/or transmission of digital audio-visual data, which typically includes not only video data and audio data, but also other data for menus, sub-pictures, graphics, control/navigation, etc., is made possible through the use of compression or encoding techniques. For example, the amount of data required to represent the video images and audio signal of a movie in an uncompressed digital format would be enormous and could not fit entirely onto a conventional recording medium, such as a compact disk (xe2x80x9cCDxe2x80x9d). Similarly, transmitting a movie in uncompressed digital form over a communication link (for real-time video) would be prohibitively expensive due to the large quantity of data to be transmitted and the large bandwidth required to transmit the data.
The video compression techniques typically used for storing audio-visual data on a digital video disc (xe2x80x9cDVDxe2x80x9d), which can hold up to 18 gigabytes of data, have been formulated by the International Standard Organization""s (xe2x80x9cISOxe2x80x9d) Motion Picture Experts Group (xe2x80x9cMPEGxe2x80x9d). The MPEG standards use a discrete cosine transform (xe2x80x9cDCTxe2x80x9d) algorithm to encode, or compress, the large amount of audio-visual digital data into a much smaller amount of audio-visual digital data that can be stored on a conventional recording medium. In general terms, this is accomplished by eliminating any repetitive video data, reducing the video data needed to depict movement, and eliminating any audio data that is not discernable by the human ear.
MPEG-1, which is defined in ISO/IEC 11172 and is hereby incorporated by reference, sets forth a standard format for storing and distributing motion video and audio. This standard has been used as a basis for video CDs and video games. MPEG-1 was designed for the playback of digital audio and video at a bit rate of 1.416 megabits per second (xe2x80x9cMbpsxe2x80x9d) (1.15 Mbps is designated for video) from data stored on a standard CD.
MPEG-2, which is defined in ISO/IEC 13818 and is hereby incorporated by reference, enhances or expands MPEG-1 to cover a wider range of applications. MPEG-2 was originally designed for the transmission of all-digital broadcast-quality video and audio at bit rates between 4 and 9 Mbps. MPEG-2, however, has become useful for may other applications, such as high definition television, and supports applications having bit rates between 1.5 and 60 Mbps.
Although the MPEG standards are typically used only for one-way communication, the H.261 and H.263 standards, which are also based on the DCT algorithm, are typically used for two-way communication, such as video telephony.
Video and/or audio compression devices, typically referred to as encoders, are used to encode a video and/or audio sequence before the sequence is transmitted or stored. The resulting encoded bitstream may then be decoded by a video and/or audio decompression device, typically referred to as a decoder, before the video and/or audio sequence is output. An encoded bitstream can only be decoded by a decoder if the encoded bitstream complies with the standard used by the decoder. Therefore, to facilitate compatibility for products produced among several manufacturers in the consumer electronics industry, the MPEG standards are being utilized for the digital video and audio decompression.
In simple terms, the DVD stores video images to be retrieved and displayed on a video display, as well as audio data to be retrieved and heard. A DVD player reads the audio-visual data stored on the DVD, decompresses and decodes the data, and generates video and audio signals for output to a video display system and audio system (i.e., to be played). In addition, DVD players typically include the capability to read, decompress and decode audio data using a variety of audio decompression techniques, such as MPEG-1, MPEG-2, PCM, Dolby AC-3 (commonly referred to as Dolby Digital), etc. Accordingly, DVD players are well-suited for playing audio-visual works, such as movies, video games, etc.
Generally, the video and audio signals are output from a DVD player to a video display (e.g. television) and a sound system (e.g. stereo system). In other words, when playing an audio-visual work, such as a movie, the DVD player reads an audio-visual stream of data from the DVD and displays the video portion of the stream (including a sub-picture portion) on the video display (television) and plays the audio portion of the stream on one or more audio speakers (stereo system).
Once the audio-visual data has been read, decompressed and decoded, the audio data must be synchronized with the video data. To facilitate the synchronized playing of the video and audio portions of the audio-visual data stream, the data stream is stored on the DVD using time stamps from a referenced frequency. The referenced frequency is defined as an integer multiple of a 27 megahertz (xe2x80x9cMHZxe2x80x9d) clock. The time stamps indicate when a particular portion of the data stream is to be played, and are also used to synchronize the display of the video portion with the playing of the audio portion. As a result, the DVD player requires an integer multiple of a 27 MHZ clock to ensure that portions of the data stream are played at the appropriate time and that both the video portion and audio portion of the data stream are synchronized.
The present invention can provide an apparatus for a digital video decoder, which includes a data processor that utilizes at least an encoded video data stream to produce one or more output streams. The one or more output streams includes at least a set of motion compensation instructions.
The present invention can also provide a digital video decoder having a bit unpacker that utilizes at least an encoded video data stream to produce a prediction data stream and a coding data stream and a motion compensation instruction encoder communicably coupled to the bit unpacker. The motion compensation instruction encoder utilizing at least the prediction data stream to produce a set of motion compensation instructions. A block decoder is also included and is communicably coupled to the bit unpacker. The block decoder utilizing at least the coding data stream to produce a set of error terms.
In addition, the present invention may provide a digital video decoder comprising a bit unpacker that utilizes at least an encoded video data stream to produce a prediction data stream and a coding data stream, a prediction mode determination function communicably coupled to the bit unpacker, a motion vector decoder communicably coupled to the prediction mode determination function, a motion compensation instruction generator communicably coupled to the motion vector decoder. The prediction mode determination function, the motion vector decoder and the motion compensation instruction generator utilizing at least the prediction data stream to produce a set of motion compensation instructions. The present invention can also include a variable length decoder communicably coupled to the bit unpacker, an inverse zig-zag scanner communicably coupled to the variable length decoder, an inverse quantizer communicably coupled to the inverse zig-zag scanner, an inverse discrete cosine transformer communicably coupled to the inverse quantizer, and a prediction error assembly communicably coupled to the inverse discrete cosine transformer. The variable length decoder, the inverse zig-zag scanner, the inverse quantizer, the inverse discrete cosine transformer and the prediction error assembly utilizing at least the coding data stream to produce a set of error terms. Each motion compensation instruction comprising an instruction descriptor followed by one or more stripe descriptors wherein the instruction descriptor comprising at least a first data field and a second data field, the first data field indicating an operation to be performed and the second data field indicating how many of the stripe descriptors follow the instruction descriptor, and the stripe descriptor comprises a third data field and a fourth data field, the third data field indicating a memory address of a first word in a current stripe and the fourth data field indicating a number of words in the current stripe. The operation to be performed comprising either a load operation, a merge operation or a write operation.
The present invention can provide a method for decoding an encoded video data stream comprising the steps of receiving the encoded video data stream, and utilizing at least the encoded video data stream to produce one or more output streams, the one or more output streams comprising at least a set of motion compensation instructions and a set of error terms.
In addition, the present invention may provide a method for decoding an encoded video data stream comprising the steps of selecting an output stream comprising either a color space data stream or a set of motion compensation instructions and a set of error terms, receiving the encoded video data stream, utilizing at least the encoded video data stream to produce a prediction data stream and a coding data stream. If the color space data stream is selected, utilizing at least the prediction data stream to produce the set of predicted video data, utilizing at least the coding data stream to produce the set of error terms, and utilizing at least the set of error terms and the set of predicted video data to produce the color space data stream. If the set of motion compensation instructions and the set of error terms are selected, utilizing at least the prediction data stream to produce the set of motion compensation instructions, and utilizing at least the coding data stream to produce the set of error terms.
One embodiment of the present invention provides a system for decoding an encoded video data stream wherein the system comprises a DVD drive, a track buffer communicably coupled to the DVD drive, a demultiplexer communicably coupled to the track buffer, a video input buffer communicably coupled to the demultiplexer, and a digital video decoder communicably coupled to the video input buffer. The digital video decoder utilizes at least an encoded video data stream to produce one or more output streams. The one or more output streams comprising at least a set of motion compensation instructions and a set of error terms, a picture memory communicably coupled to the digital video decoder, a mixer communicably coupled to the digital video decoder, and a video renderer communicably coupled to the mixer.
This implementation allows the motion compensation pipeline to be specified and implemented either separately or together with the block decode section with minimal coordination. The calculation of memory addresses and generation of pipeline control information may proceed in parallel with the data manipulation. In addition, the parsing and data filtering functions are decoupled from the motion compensation functions. And finally, the motion compensation pipeline may be fabricated in hardware while the parsing and motion compensation calculation are implemented in software.